#include "ZigbusTimeItem.h"
#include <QDebug>

ZigbusTimeItem::ZigbusTimeItem()
    : ZigbusItem(-1, TIME_SIZE)
{
}

ZigbusTimeItem::ZigbusTimeItem(int time, int unit)
    : ZigbusItem(-1, TIME_SIZE)
{
    int value = time;
    value = value << TIME_UNIT_SIZE;
    value |= unit;
    setValue(value);
}

ZigbusTimeItem::ZigbusTimeItem(int value)
    : ZigbusItem(value, TIME_SIZE)
{

}

ZigbusTimeItem::ZigbusTimeItem(const ZigbusTimeItem &other)
    : ZigbusItem(other)
{

}

QString ZigbusTimeItem::text() const
{
    return QString::number(getTimeValue(), 10)+ " " + (getUnitValue() == UNIT_DSEC ? "dsec"
                                                          : "sec");
}

int ZigbusTimeItem::getTimeValue() const
{
    int time = 0;
    int value = getValue();
    value = value >> TIME_UNIT_SIZE;
    time = (value & 0xFFF); // value sur 12 bits
    return time;
}

int ZigbusTimeItem::getUnitValue() const
{
    int unit = 0;
    unit = (getValue() & 0x01); //unit sur 1 bit
    return unit;
}
